package com.mianyang.zhangsan.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mianyang.zhangsan.model.entity.SecAuthority;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mianyang.zhangsan.model.entity.SecRoleAuthority;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author jiangjr
 * @since 2022-10-23
 */
public interface ISecAuthorityService extends IService<SecAuthority> {

    /**
     * 查询角色拥有的权限
     * @param roleId 角色id
     * @return 角色权限
     */
    List<SecAuthority> selectAuthByRoleId(Long roleId);

    /**
     * 查询角色权限
     * @param roleIds 角色编号
     * @return 角色权限
     */
    List<SecAuthority> selectAuthorities(List<Long> roleIds);

    /**
     * 查询角色权限
     * @param authorityName 权限名称
     * @param current 当前页码
     * @param pageSize 分页大小
     * @return 角色权限
     */
    Page<SecAuthority> selectAuthorities(String authorityName, int current, int pageSize);

    /**
     * 查询所有的父级权限
     * @return 父级权限
     */
    List<SecAuthority> selectParentAuthorities();

    /**
     * 更新角色权限关系
     * @param roleAuthorities 关系
     * @param roleId 角色编号
     */
    void updateRoleAndAuthRelation(Long roleId, List<SecRoleAuthority> roleAuthorities);

}
